#ifndef INC_H
#define INC_H

#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/Twine.h"
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCCodeView.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCFixupKindInfo.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstPrinter.h"
#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCObjectWriter.h"
#include "llvm/MC/MCRegister.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/FormattedStream.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/TargetRegistry.h"
#include <cctype>

namespace llvm {

MCStreamer* kifycreateAsmStreamer(MCContext& Context,
    std::unique_ptr<formatted_raw_ostream> OS,
    bool isVerboseAsm, bool useDwarfDirectory,
    MCInstPrinter* IP,
    std::unique_ptr<MCCodeEmitter>&& CE,
    std::unique_ptr<MCAsmBackend>&& MAB,
    bool ShowInst);

MCStreamer* kify_nncreateAsmStreamer(MCContext& Ctx,
    std::unique_ptr<formatted_raw_ostream> OS,
    bool IsVerboseAsm, bool UseDwarfDirectory,
    MCInstPrinter* InstPrint,
    std::unique_ptr<MCCodeEmitter>&& CE,
    std::unique_ptr<MCAsmBackend>&& TAB,
    bool ShowInst, const Target* TheTarget);
};

#endif // INC_H
